#include<stdio.h>
 #include<unistd.h>
 #include<sys/types.h>
 #include<sys/wait.h>
 #include<stdlib.h>                                                                                                                                                                                                               
 int main()
 {
     //创建两个子进程
     pid_t id1=fork();
     if(id1==0)
     {
         //子进程创建成功，创建孙子进程
         pid_t id2=fork();
         if(id2==0)
         {
             printf("我是孙子进程，PID：%d   PPID:%d\n",getpid(),getppid());
             exit(1);//孙子进程运行结束后，退出
         }
         wait(0);//等待孙子进程运行结束
        printf("我是子进程，PID：%d   PPID:%d\n",getpid(),getppid());
     }
 
     wait(0);//等待子进程运行结束
     printf("我是父进程,PID: %d   PPID:%d\n",getpid(),getppid());
      return 0;//父进程运行结束后，退出
  }
